import java.util.List;
import java.util.ArrayList;

public class Problem25 {
	public static void main(String[] args) {
		List<Integer> a = new ArrayList<Integer>();
		a.add(1);
		List<Integer> b = new ArrayList<Integer>();
		b.add(1);

		List<Integer> c = add(a, b);
		int i = 3;

		while(c.size() != 1000) {
			a = b;
			b = c;
			c = add(a, b);
			i++;
		}
		
		System.out.println("" + i);
	}

	private static List<Integer> add(List<Integer> a, List<Integer> b) {
		if (a.size() == 0)
			return b;
		if (b.size() == 0)
			return a;

		List<Integer> res = new ArrayList<Integer>();
		int i = 0;
		int carry = 0;
		int maxLen = Math.max(a.size(), b.size());
		for (; i < maxLen; ++i) {
			int sum = carry;
			if (i < a.size())
				sum += a.get(i);
			if (i < b.size())
				sum += b.get(i);

			res.add(sum%10);
			carry = sum/10;
		}

		if (carry > 0)
			res.add(carry);

		return res;
	}
}
